PRGTOGEOS (Chapter 3) Corrections:

PRGTOGEOS utility described in chapter 3 does not work. With the following 
corrections, you should have no problem with it.

On page 48, replace the "psect 400" with:

  .psect $304 ;The fileheader does not actually start at $304; this psect 
  is necessary so that the fileheader occupies the first 252 bytes of the 
  PRG file which your assembler creates.

  The comments below "FileHeader" should read:

  ;The first four bytes of the fileheader will be written to the header 
  block by the PRGTOGEOS basic program during conversion. For your 
  information, the first four bytes will contain: 

  ;     .byte $00,$ff   ;null pointer 
                        ;to next block 
  ;     .byte 3,21      ;icon width and 
                        ;height

  Then these comments follow:

  ;The rest of the header will end up in bytes $04-$ff of the first block 
  of the PRG file. When this file is converted, this first block will 
  become the program's header block, and the header information from $04 to 
  $ff in the block will already be in the correct place.
  
  The rest of the header from P48 follows fro	 here, starting with the 
  .byte ($80+63) line and ending with the .byte 0,0,0,0 line. Then replace 
  everything on the page below that line with the following:

  ;the assembler should fill any free space in here with $00's, until the 
  location counter equals $400.

  .psect $400    ;The code following this psect will be written into block 
  2 of the PRG file.
  
  InitCode:
        lda #21    ;here are two sample
        sta r0L    ; lines. Change these.
  
  ;rest of application code goes here

  E	 Code:   ;This label is use by the header block to store the ending 
  address of the application code.

  THIS CONCLUDES the changes to page 48. The only other necessary changes 
  are in the PRGTOGEOS basic program.



Now that we have corrected the header block on page 48, we need to change 
  several lines of the PRGTOGEOS basic program which is listed on pages 
  50-52. Replace the following lines with the lines listed below:

  80 input "hour       (ex: 14)";H

  180 T$=HT$:S$=HS$:gosub 1000

  210 f	  I=2 to 68

  310 for I=0 to (32*E)+2

  DELETE LINE 240 (240 get#2,ct$)

  MAKE SURE LINE 3050 READS: 3050 for I=I to 31



P222 Corrections

  The DBGETFILES equate described on P222 in the GEOS REF MAN should have a 
  value of 16, not 15 as it appears in the manual. See P405 for 
  confirmation. 



P412 Corrections

  The Jump address for the print drivers are a little messed up.  Change 
  the addresses as follows:

  GetDimentions  =  PRINTBASE+12   ; $790C address of GetDimentions
  PrintASCII    	   PRINTBASE+15   ; $790F address of PrintASCII entry
  StartASCII     =  PRINTBASE+18   ; $7912 address of StartASCII entry
  SetNLQ         =  PRINTBASE+21   ; $7915 address of SetNLQ entry

  The addresses for spicific sprite picture data has a similar error:

  spr3pic        =  spr2pic        ; $8AC0 addr. of sprite pic. data



P432 Corrections

  DoneWithIO should read $c25f CopyString should read $c265
